<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>14-字符串-切割</title>
</head>
<body>
    <script>
        /* 
          slice() 
            方法可通过指定的开始和结束位置，提取字符串的某个部分
          语法：
            字符串.slice(start[, end]);
              start (必需)：规定从何处开始选取
              end   (可选)：规定从何处结束选取，即结束处的字符下标。     
              （包括 start，不包括end)     
        */ 

        var str = '0123456';
        console.log(str.slice(1,4));  //123
        console.log(str.slice(2));   //23456

        
       /* 
          substring()  substring 提取从 indexStart 到 indexEnd（不包括）之间的字符
            方法用于提取字符串中介于两个指定下标之间的字符
            语法如下：
                字符串.substring(start[, stop]);  
                start (必需)：截取字符串的起始位置。
                stop  (可选)：截取字符串的终止位置。
                stop:可选。一个 0 到字符串长度之间的整数，以该数字为索引的字符不包含在截取的字符串内。
       */
/* 
如果 indexStart 等于 indexEnd，substring 返回一个空字符串。
如果省略 indexEnd，substring 提取字符一直到字符串末尾。
如果任一参数小于 0 或为 NaN，则被当作 0。
如果任一参数大于 stringName.length，则被当作 stringName.length。
如果 indexStart 大于 indexEnd，则 substring 的执行效果就像两个参数调换了一样。
*/
 var anyString = "Moz illa";
// 输出 "Moz"
console.log(anyString.substring(0,3));  //Moz
console.log(anyString.substring(3,0));  //Moz
console.log(anyString.substring(3,-3));  //Moz
console.log(anyString.substring(3,NaN));  //Moz
console.log(anyString.substring(-2,3));  //Moz
console.log(anyString.substring(NaN,3));  //Moz

// 输出 "lla"
console.log(anyString.substring(4,7));  //lla
console.log(anyString.substring(7,4));  //lla

// 输出 ""
console.log(anyString.substring(4,4));  // 啥也没

// 输出 "Mozill"
console.log(anyString.substring(0,6));  //Mozill

// 输出 "Mozilla"
console.log(anyString.substring(0,7));  //Mozill
console.log(anyString.substring(0,10));  //Mozill

console.log(str.substring(1,4));  // 123
console.log(str.substring(2));   // 23456



         /* 
          substr() 
              方法用于返回一个从指定位置开始的指定长度的子字符串
            语法如下：
                  str.substr(start[, length]);
                  start  (必需)：截取的子字符串的起始位置。
                  length (可选)：在返回的子字符串中应包括的字符个数。(包括)

                  如果 start 为正值，且大于或等于字符串的长度，则 substr 返回一个空字符串。
                  如果 start 为负值，则 substr 把它作为从字符串末尾开始的一个字符索引。(即从-1倒着数再截取)
                  如果 start 为负值且 abs(start) 大于字符串的长度，则 substr 使用 0 作为开始提取的索引
                  如果 length 为 0 或负值，则 substr 返回一个空字符串。如果忽略 length，则 substr 提取字符，直到字符串末尾。
       */
 var str = "abcdefghij";
console.log("(1,2): "    + str.substr(1,2));   // (1,2): bc
console.log("(-3,2): "   + str.substr(-3,2));  // (-3,2): hi
console.log("(-3): "     + str.substr(-3));    // (-3): hij
console.log("(1): "      + str.substr(1));     // (1): bcdefghij
console.log("(-20, 2): " + str.substr(-20,2)); // (-20, 2): ab
console.log("(20, 2): "  + str.substr(20,2));  // (20, 2):

       console.log(str.substr(1,4));  //1234
       console.log(str.substr(2));   //23456
    </script>
</body>
</html>